1. Field of the Invention
The present invention relates generally to delivering operating systems and applications to client computers, and specifically to integrated on-demand delivery of operating system and applications to client computers over a network.
2. Description of the Related Art
Network-based computing models have been gaining popularity in recent years as cost effective approaches to managing enterprise computing needs. Ranging from network-managed PCs, network computers, thin-clients, to server-centric clients, network-based computing is largely motivated by the need to reduce the cost of providing IT services (known as the Total Cost of Ownership, TCO) in networked computing environments. It is well known in the industry that the most expensive part of providing computing resources to end-users is not the cost of the computing hardware and software but the cost of on-going maintenance and management. See, Thin Client Benefits, Newburn Consulting (2002); Total Cost of Application Ownership, The Tolly Group Whitepaper (1999); TCO Analyst: A White Paper on GartnerGroup's Next Generation Total Cost of Ownership Methodology, GartnerConsulting (1997). According to these well known studies, network-based computing models can significantly reduce the TCO by centralizing the maintenance and management functions of IT services, thereby reducing the recurring cost of on-going maintenance and management.
New techniques are being developed in the continuing quest to achieve a lower TCO without compromising performance and reliability. Of particular interest are Operating System (OS) Streaming and Application Streaming, which utilize streaming technologies to deploy Operating Systems and Applications to PCs or client computers.
Initially developed for Internet multimedia applications, streaming technology provides an advantageous method for timely delivery of time-sensitive or interaction-oriented data over a network. In video streaming, for example, instead of waiting until the entire video file is downloaded before beginning the playback, the video playback starts as soon as a sufficient portion of the file has been downloaded. Then, in a process called “prefetching” or “buffering”, further frames are downloaded while the already-received frames are being played. The video playback appears seamless to the user, and the potentially very long delay for downloading the entire video file is eliminated.
Similarly, OS Streaming and Application Streaming systems leverage streaming technology to improve network computing performance. Network computers, such as diskless computers that boot across a network from a central server, have traditionally suffered from poor performance due to network latency. Traditional diskless network computer technology simply replaces “demand paging” disk access with network access. That is, whenever some code or data are needed on a client computer, they are brought in over the network rather than from a local disk. Since network latencies are several times greater than local disk access delays, code and data access times are much longer, degrading the performance of network computers. Other traffic on the network can further worsen the performance of these computers. However, with OS Streaming and Application Streaming systems, the files necessary to run or execute an OS or application are “prefetched” or “buffered” to the client computer in a manner analogous to video streaming such that the OS or application can run seamlessly without being affected by the delays due to finite network response time or bandwidth. At the same time, centralized installation, delivery and management of operating systems or applications are made possible, because the OS or application files are delivered to the client computers from a central server.
At present, OS Streaming systems are provided by vendors such as Venturcom and Qualystem. More commonly known as Remote Boot or Network Boot technology, the existing OS Streaming solutions provide the core OS files needed to boot or initially load the operating system onto the client computer by streaming methodology. Although the existing OS streaming solutions improves the performance of OS delivery over the traditional network computing, they nevertheless suffer from significant shortcomings.
To start, once the initial OS loading is completed, the system reverts back to demand paging for further access of code or data necessary to run the client computers. For instance, application delivery provided in the existing OS streaming systems relies on demand paging. Typically, the applications are built into the operating system image and the entire OS-plus-applications image is delivered to the client computers. However, only the initial OS loading part is streamed, and the system relies on traditional demand paging once the operating system is up and running. Thus, when running applications on client computers—which comprises the bulk of users' interaction with the system—the performance of the existing OS Streaming systems is no better than the traditional diskless workstations, being limited by various network latencies.
In addition, the existing OS streaming solutions suffer from significant problem of scalability and management. For example, an entire operating system plus application images must be built for each end-user account because each end-user would want to select applications he or she needs. However, there is no reason to maintain more than one OS image for each client machine. That is, operating systems are specific to client machines, while the applications are specific to users. Thus, the OS-plus-application streaming approach incurs a waste of substantial storage space for each user—typically, several hundred megabytes per user. For enterprise systems with thousands of users, several hundred megabytes of wasted space per user would easily add up to terabytes of unnecessary storage requirement.
Another problem is that a new OS image must be built each time an application is added, removed, upgraded, or otherwise modified. A new OS-plus-applications image must be rebuilt whenever one of the applications have a “patch” (a minor fix or upgrade) applied to it. But, building operating system images is a resource intensive task, and repeating the task each time a patch is applied to an application—which is a relatively common event—is impractical in an environment with a large number of users. Fundamentally, these problems are due to the fact that operating systems are machine specific but the applications are user specific. In other words, the systems that manage OS and applications as a single unit are bound to scale poorly due to inherent mismatch of the levels of specificity between the operating system management and the applications management. A proper solution must take this fundamental difference into account.
The Application Streaming technology, on the other hand, addresses the problem of application delivery and management by utilizing the streaming technology. In a manner analogous to multimedia or OS streaming, the applications in an Application Streaming system are provided from the servers over the network, a block at a time, as the application blocks are needed by the client computer to run the application. However, the “prefetching” of application code or data must be more “intelligent” than OS streaming, since the code or data needed in an immediate or foreseeable future are not deterministically known due to the interactive nature of user driven application executions. Nevertheless, with intelligent prediction algorithms, Application Streaming systems can prefetch necessary code or data with sufficient predictive accuracy to minimize demand paging across the network, improving the application performance. At the same time, because the applications are provided from the servers, the management of application distribution, installation, and delivery can be centralized at the server, thereby further reducing the ever-increasing application management component of the TCO. Currently, various embodiments of Application Streaming technology are provided by vendors such as AppStream and Endeavors Technology.
Application Streaming technology, however, suffers from one significant shortcoming in that it requires a considerable local disk space for the system to function. This is because virtually all modern applications, such as the Microsoft Word, make use of local paging files—sometime called temporary files—which require a sizeable local storage space. These applications cannot run without sufficient disk space to write out the paging files. However, currently available Application Streaming solutions do not provide capability to write data or files out to the streaming server, as they stream data only in one direction from the server to clients. Thus, currently available Application Streaming technology cannot be used for client devices with no local storage space such as diskless PC's and thin-clients.
A highly desirable way to overcome this shortcoming is to integrate OS Streaming technology with Application Streaming technology. With an integrated streaming system, the local storage space required for the Application Streaming service can be provided by the OS Streaming service by enabling a virtual disk service over the network. It can be seen, then, there is a need in the field for an integrated OS Streaming and Application Streaming system.
Another shortcoming of Application Streaming technology is that it does not address the issue of operating system dependencies and management. There is no question that management of operating systems installed on the client computers is an important aspect of enterprise system management. Furthermore, application management systems that do not address operating system management are inherently incomplete because the installation and execution of applications are operating system dependent. For example, some applications written for Windows 98 will not install or run properly on Windows 2000 or Windows XP. Therefore, centralized management of application distribution and delivery cannot be fully effective and complete without comparable centralized management of operating systems on the client computers. Moreover, management of applications detached from operating system management can give rise to complexities and unexpected difficulties in enterprise system management, which ultimately result in higher TCO.
It can be seen, then, there is a need in the field for a system that provides centralized management of distribution and delivery of applications as well as operating systems, utilizing streaming technology for both application delivery and operating system delivery.